<h5>Interfacing the Wiring hardware and MaxMSP</h5>
<p>This tutorial introduces the basic interfacing between the Wiring hardware and MaxMSP <a href="http://cycling74.com">http://cycling74.com</a>. The brief for the tutorial will be to send  data to the Wiring board, the Wiring board will read the data and turn ON or OFF the board LED accordingly. It assumes the Wiring software and MaxMSP are installed and the proper Wiring setup has been previously completed. For more Information on Wiring install check out the <a href="http://wiring.org.co/learning/tutorials/">tutorials</a> about Wiring installation and software setup.</p>
<h5>Step 1</h5>
<p>Copy and paste the following code on the Wiring editor: Verify your program is free of compiling errors by pressing the Compile/Verify button in the menu bar. Press the Upload button in the menu bar. In case of syntax errors the Wiring environment will print the error messages otherwise it will print the Upload was completed successfully, the uploading process triggers activity in the Rx/Tx LEDs on the Wiring hardware. The new program will start automatically after uploading. Use the Serial Monitor button to watch the data coming from the Wiring board, then close the Serial Monitor again. The full code for the example (both Wiring &amp; MaxMSP is at the Examples -&gt; Topics -&gt; Other Software section <a href="http://wiring.org.co/learning/topics/serialreadmaxmsp.html">here</a>.</p>
<pre>
int val;          // variable to receive data from the serial port
int ledpin = 48;  // Wiring board LED

void setup() 
{
  pinMode(ledpin, OUTPUT);  // pin 48 (on-board LED) as OUTPUT
  Serial.begin(9600);       // start serial communication at 9600bps
}

void loop() {
  if( Serial.available() )         // if data is available to read
  {
    val = Serial.read();           // read it and store it in 'val'
    if( val == 'H' )               // if 'H' was received
    {
      digitalWrite(ledpin, HIGH);  // turn ON the LED
    } 
    else if( val == 'L' ) { 
      digitalWrite(ledpin, LOW);   // otherwise turn it OFF
    }
  }
  delay(100);                      // wait 100ms for next reading
}
</pre>
<p>&nbsp;</p>
<h5>Step 2</h5>
<p>Next step is to setup things in MaxMSP. Start MaxMSP.</p>
<p><img src="imgs/max_01.jpg"/></p>
<p>&nbsp;</p>
<h5>Step 3</h5>
<p>Double click the working area to add objects as shown:
<code></code>
<p><img src="imgs/maxoutput_01.jpg"/></p>
<p>&nbsp;</p>
<h5>Step 4</h5>
<p>Connect the objects as shown: </p>
<p><img src="imgs/maxoutput_02.jpg" width="640" height="528" /></p>
<p>&nbsp;</p>
<h5>Step 5</h5>
<p>Routing the connections sometimes produce a more readable patch, now the patch is ready to be tested, click the lock in the status bar and then click the toggle on the patch to start sending data. There are three toggles, one to open/close the serial port (color fucsia), one to send 'H' or 'L' to the board and one that sends 'H' or 'L' every second making the Wiring board LED to blink.</p>
<img src="imgs/maxoutput_03.jpg" width="640" height="528" />
<p>&nbsp;</p>
<p>Next &gt;&gt; <a href="MaxMSP3.html">Reading in MaxMSP all the analog inputs from the Wiring board</a></p>
